package 接口;

import java.util.ArrayList;
import java.util.List;

// 校园设备管理类：统一处理设备操作、网络连接、USB连接
public class DeviceManager4 {
    // 存储所有设备的集合
    private List<Device4> deviceList;

    // 构造方法：初始化设备集合
    public DeviceManager4() {
        deviceList = new ArrayList<>();
    }

    // 添加设备到管理集合
    public void addDevice(Device4 device) {
        deviceList.add(device);
        System.out.println("已添加设备到管理系统：" + device.getClass().getSimpleName());
    }

    // 统一执行所有设备的开机操作（多态调用）
    public void powerOnAllDevices() {
        System.out.println("\n=== 执行所有设备开机操作 ===");
        for (Device4 device : deviceList) {
            device.powerOn(); // 调用不同设备的具体开机实现
        }
    }

    // 统一执行所有网络设备的联网操作（接口回调）
    public void connectAllNetworkDevices() {
        System.out.println("\n=== 执行所有网络设备联网操作 ===");
        for (Device4 device : deviceList) {
            // 判断设备是否实现NetworkDevice4接口，是则执行联网
            if (device instanceof NetworkDevice4) {
                ((NetworkDevice4) device).connectNetwork(); // 接口回调
            }
        }
    }

    // 统一执行所有USB设备的USB连接操作（接口回调）
    public void connectAllUsbDevices() {
        System.out.println("\n=== 执行所有USB设备USB连接操作 ===");
        for (Device4 device : deviceList) {
            // 判断设备是否实现UsbDevice4接口，是则执行USB连接
            if (device instanceof UsbDevice4) {
                ((UsbDevice4) device).connectUsb(); // 接口回调
            }
        }
    }
}